--- Object type flags.
ObjectType = {
	Object,
	Item,
	Container,
	Unit,
	Player,
	GameObject,
	DynamicObject,
	Corpse,
	AreaTrigger,
	SceneObject,
	All,
};

--- Get an object's pointer.
-- @param Object The object.
-- @return The pointer.
function ObjectPointer (Object) end

--- Get a field in an object.
-- @param Object The object.
-- @param Offset The offset of the field.
-- @param Type The type of the field. It must be a member of Type.
-- @return The value of the field.
function ObjectField (Object, Offset, Type) end

--- Get a descriptor in an object.
-- @param Object The object.
-- @param Offset The offset of the descriptor.
-- @param Type The type of the descriptor. It must be a member of Type.
-- @return The value of the descriptor.
function ObjectDescriptor (Object, Offset, Type) end

--- Get an object's position.
-- @param Object The object.
-- @return The X, Y, and Z coordinates.
function ObjectPosition (Object) end

--- Get an object's facing direction.
-- @param Object The object.
-- @return The object's facing direction, in radians.
function ObjectFacing (Object) end

--- Get an object's GUID.
-- @param Object The object.
-- @return The object's GUID.
function ObjectGUID (Object) end

--- Get an object's type flags.
-- @param Object The object.
-- @return The object's type flags.
function ObjectTypeFlags (Object) end

--- Get an object's scale.
-- @param Object The object.
-- @return The object's scale.
function ObjectScale (Object) end

--- Interact with an object.
-- @param Object The object.
function ObjectInteract (Object) end

--- Get whether an object exists.
-- @param Object The object.
-- @return Whether the object exists.
function ObjectExists (Object) end

--- Get an object's name.
-- @param Object The object.
-- @return The object's name.
function ObjectName (Object) end

--- Get the distance between two objects.
-- @param Object1 The first object.
-- @param Object2 The second object.
-- @return The distance between the objects.
function GetDistanceBetweenObjects (Object1, Object2) end

--- Get the angles between two objects.
-- @param Object1 The first object.
-- @param Object2 The second object.
-- @return The two angles from the first object to the second.
function GetAnglesBetweenObjects (Object1, Object2) end

--- Get the position that is directly between two objects and a specified distance from the first object.
-- @param Object1 The first object.
-- @param Object2 The second object.
-- @param DistanceFromObject The distance from the first object.
-- @return The X, Y, and Z coordinates of the position.
function GetPositionBetweenObjects (Object1, Object2, DistanceFromObject1) end

--- Get whether an object is of one or more types.
-- @param Object The object.
-- @param ... The types to be checked for. One or more members of ObjectType.
-- @return Whether the object is of at least one of the types.
function ObjectIsType (Object, ...) end

--- Get whether an object is facing another.
-- @param Object1 The first object.
-- @param Object2 The second object.
-- @return Whether the first object is facing the second.
function ObjectIsFacing (Object1, Object2) end

--- Get whether an object is behind another.
-- @param Object1 The first object.
-- @param Object2 The second object.
-- @return Whether the first object is behind second.
function ObjectIsBehind (Object1, Object2) end